#include <bits/stdc++.h>

#define eb emplace_back
#define ep emplace
#define fi first
#define se second
#define in read<int>()
#define lin read<ll>()
#define rep(i, x, y) for(int i = (x); i <= (y); i++)
#define per(i, x, y) for(int i = (x); i >= (y); i--)

using namespace std;

using ll = long long;
using db = double;
using pii = pair < int, int >;
using vec = vector < ll >;
using veg = vector < pii >;

template < typename T > T read() {
	T x = 0; bool f = 0; char ch = getchar();
	while(!isdigit(ch)) f |= ch == '-', ch = getchar();
	while(isdigit(ch)) x = x * 10 + (ch ^ 48), ch = getchar();
	return f ? -x : x;
}

template < typename T > void chkmax(T &x, const T &y) { x = x > y ? x : y; }
template < typename T > void chkmin(T &x, const T &y) { x = x < y ? x : y; }

const int N = 1e6 + 10;

ll a, b;
int t[114], cnt;
ll f[20][20][20][2][2];

vec solve(ll x) {
	cnt = 0; while(x > 0) t[++cnt] = x % 10, x /= 10;
	reverse(t + 1, t + cnt + 1);
	memset(f, 0, sizeof f);
	rep(i, 0, 9) f[0][i][0][1][1] = 1;
	ll ret = 0;
	rep(i, 1, cnt) rep(j, 0, 9)
		rep(k, 0, i - 1) rep(l1, 0, 1) rep(l2, 0, 1) if(ret = f[i - 1][j][k][l1][l2]) {
		int lim = l2 ? t[i] : 9;
		rep(y, 0, lim) 
			f[i][j][k + (y == j && (!l1 || y > 0))][l1 && (y == 0)][l2 && (lim == y)] += ret;
	}
	vec r(10, 0);
	rep(j, 0, 9) rep(k, 1, cnt) rep(l1, 0, 1) rep(l2, 0, 1) r[j] += f[cnt][j][k][l1][l2] * k;
	return r;
}

int main() {
#ifdef YJR_2333_TEST
	freopen("1.in", "r", stdin);
#endif
	a = lin, b = lin;
	vec ans1 = solve(b), ans2 = solve(a - 1);
	rep(i, 0, 9) printf("%lld%c", ans1[i] - ans2[i], " \n"[i == 9]);
	return 0;
}
